#ifndef _WS2812_DRIVER_H
#define _WS2812_DRIVER_H
#include "sys.h"
#include <stdint.h>

// 灯环配置（用户可修改）
#define LED_NUM         16      // 灯珠数量

// 颜色结构体 (RGB格式)
typedef struct {
    uint8_t r;
    uint8_t g;
    uint8_t b;
} RGB_Color;

// 灯环操作句柄
typedef struct {
    RGB_Color leds[LED_NUM];    // LED颜色状态
    uint8_t brightness;         // 全局亮度(0-100)
    uint8_t dirty;              // 数据脏标记
} WS2812_RingHandle;

// 初始化灯环
void WS2812_RingInit(WS2812_RingHandle *hring);

// 设置全局亮度
void WS2812_SetBrightness(WS2812_RingHandle *hring, uint8_t brightness);

// 设置单个LED颜色
void WS2812_SetLEDColor(WS2812_RingHandle *hring, uint16_t index, RGB_Color color);

// 设置整个灯带颜色
void WS2812_SetAllColor(WS2812_RingHandle *hring, RGB_Color color);

// 清除灯带（所有LED熄灭）
void WS2812_ClearAll(WS2812_RingHandle *hring);

// 更新灯带（发送数据到硬件）
void WS2812_UpdateRing(WS2812_RingHandle *hring);



#endif
